﻿using System;
using System.Collections.Generic;
using System.Linq; 
using System.Text;

namespace Graphene.Processing
{
    public abstract class AbstractUniSourceProcessor : AbstractProcessor
    {
        public ProcessorSource AssignedProcessorSource
        {
            get { return processorSource; }
        }
       
        /**
         * Getter for the copied source attribute from ProcessorSource.
         * .. As we always copy out the source attribute first and then perform computations on it, so
         * sometimes it is necessary to view the real source that we are currently processing and not the
         * source that may be already changed in the ProcessorSource.
         */
        public Object CopiedSourceData
        {
            get { return copiedSourceData; }
        }        

        /**
         * The Source from where it takes its input data and processes.
         */
        protected ProcessorSource processorSource;

        /**
         * A copy of the processorSources's last known source that we are allowed to work on.
         */
        protected Object copiedSourceData;       
    }
}
